Visual ChatGPTが誰でも使えるようになっていたので画像を生成してみた
はじめに
新規事業統括部Passregiチームの山本です。
最近、特に3月1日ChatGPTのAPIが公開されてから、AIを使ったチャットボットに関する話題が増えています。そんな中、ChatGPTを利用した、画像を対話的に生成したり説明させたりできる、Visual ChatGPTが公開されたので、早速動かしてみました。
Visual ChatGPTについて
Visual ChatGPTは、クエリに関するプロンプトマネージャ介して、さまざまな画像のモデルとChatGPTを使用することで、画像を対話的に生成します。細かい内容は論文にゆずろうかと思います。
https://arxiv.org/abs/2303.04671 より
これが実行できるソースコードが、つい先日(自分の知る限りだと3月9日に)githubで公開されました。当初、自分の持っているWindows機で実行してみたのですが、使用しているGPUが古いせいか実行時でエラーになってしまいました。ただ、ちょうど今日確認したところ、colabで実行できるようになっていたので、早速試してみました。(huggingface版も公開されています、後述)
Google Colabで動かしてみる
githubのページにアクセスします。
https://github.com/microsoft/visual-chatgpt
ページ中のタイトルの下部にある、「Open In Colab」と書かれているボタンを押します。(Google Colabのページに移動し、実行用のコードが表示されます)
そのままだと実行できないので、「ドライブにコピー」を押して、自分のドライブにコピーします。(マイドライブの「Colab Notebooks」にコピーされます)
ノートブック中の「%env OPENAI_API_KEY=your_key」の”your_key”の部分を、自分のOpenAIのAPIキーに書き換えます。
「ランタイム」から「すべてのセルを実行」を選択します。すると、一番下のセルに、下の画像のような、チャット欄が表示されます。ここにテキスト書いてエンターを押すと、内容に応じた画像が生成されます。また、「Upload」を押して、画像を渡してテキストで質問することもできます。
画像を生成してみる
サンプル
huggingface版にもある質問を実行してみました。ちょっと意図とは違う気がします。
日本語でも使えます(内部で翻訳されているような感じの動作ですね)。これも少し意図とは違う気がします。
作成した画像やアップロードした画像に関して質問することもできます
動作を推測してみる
GithubのQuickStartにかかれているように、モデルのサイズが大きく、がGPUの能力(メモリ)によって使用するモデルを変えています。Colab版では、2つのモデル("ImageCaptioning_cuda:0,Text2Image_cuda:0”)のみをロードしているので、上のクエリで意図している動作にはなっていなさそうです。
https://github.com/microsoft/visual-chatgpt#quick-start
ImageCaptioningとText2Imageなので、「生成用のメッセージ」を変えながら、毎回画像を生成し直しているような動作になっていそうです。似たようなのまま対象の箇所だけ変えるには、InstructPix2Pixなどをロードの対象に加えると良さそうだと思われます。(そのためには、メモリサイズの大きいGPUが必要そうです)
https://www.timothybrooks.com/instruct-pix2pix/
追記(3/15)
ということで、ノートブックの該当箇所を書き換えてみます。具体的には、以下の1つ目のように書かれている箇所を、2つ目のように書き換えます。SegText2Image_cuda・InstructPix2Pix_cudaと、CPUを使用するモデルをいれました。
load = "ImageCaptioning_cuda:0,Text2Image_cuda:0"
load = "ImageCaptioning_cuda:0,Text2Image_cuda:0,InstructPix2Pix_cuda:0,ImageEditing_cuda:0,Image2Seg_cpu,Image2Line_cpu,Image2Normal_cpu,Image2Pose_cpu,Image2Hed_cpu,Image2Line_cpu,Image2Line_cpu,SegText2Image_cuda:0"
「ランタイム」から「ランタイムを再起動」を選択し、「ランタイム」からすべてのセルを実行します。先程と同様に実行すると、背景が同じまま猫だけが犬に変わりました。(良い感じですね!)
補足
コピー元のノートブックを実行すると以下のようにメッセージが表示されます。実行されている処理の内容はVisual ChatGPTのリポジトリをクローンして、必要なライブラリをインストールして実行する、のみですが、気になる場合は内容をチェックしてください。
Visual ChatGPTはhuggingfaceも公開されていたので試したのですが、クエリが実行されたりされなかったりしました。(2023年3月14日現在)
https://huggingface.co/spaces/microsoft/visual_chatgpt
「追記」に記載した変更後のloadを使用した場合、ColabのランタイムのGPU RAMの使用率がギリギリでした。動作中にエラーなどが発生するかもしれません。また、上記に記載した以上に、GPUを使用するモデルを増やした場合、クエリを投げても返答がありませんでした。使用するモデルは適宜選択したほうが良さそうです。
おまけ
中身はChatGPTということもあってか、画像とは関係ないことにも返答してくれました。
まとめ
Visual ChatGPTが公開されたので使ってみました。Colab版で使用するモデルを増やすことで、意図しているような画像を生成できました。